package com.kobeliu.entity;

public class Demo_33_No283 {

    public static void main(String[] args) {


    }

    /**
     使用额外数组，不符合要求
     */
    public void moveZeroes1(int[] nums) {
        int len = nums.length;
        int[] help = new int[len];

        int temp = 0; //nums的指针
        int i = 0; //help的指针
        while(temp<len){
            if(nums[temp]!=0) help[i++] = nums[temp];
            temp++;
        }
        for(int j=0;j<len;j++){
            nums[j] = help[j];
        }
    }

    /**
     * 满足要求 但是速度可以改进
     * 两个指针 一个遍历 一个写数 遍历的指针一定>=写数的指针
     * @param nums
     */
    public void moveZeroes(int[] nums) {
        int len = nums.length;
        int i = 0; //现在数组指针
        int j = 0; //新数组指针
        while(i<len){
            if(nums[i]!=0){
                nums[j++] = nums[i++];
            }else{
                i++;
            }
        }
        //现在遍历完了 j下面的数全部补0;
        while(j<len){
            nums[j++] = 0;
        }

    }
}
